#声明函数
def add():
    a = 3
    b = 5
    s = a + b
    print(s)
    return a  #只是有返回值，没有显示

#调用
c = add()
print(c)


# 函数的参数传递
# 第一组
def add(a, b):  # a、 b为参数
    print(a + b)


#   第二组
a = 1
b = 3
add(a, b)  # 实参为变量

#   第三组
add(2*3, 4*5)  # 实参为表达式

c = 3
add(8, c*3)  #   实参为常量、 变量和表达式组合


# 位置参数示例：
def score(a, b, c):
    print("张三", a)
    print("李四", b)
    print("王五", c)


score(100, 101, 102)
def fav(*fru):
    print('我喜欢的水果有：')
    for i in fru:
        print(i)



fav('橘子')
fav('苹果','桃子','西瓜')
fav('菠萝','香蕉','橘子','哈密瓜','草莓','葡萄')



def show(a,b ,*l):
    print(a)
    print(b)
    print(l)


show(1,2,4,5,6,7,9,56)


def rectangle():
    a = int(input('请输入矩形的长(整数值)：'))
    b = int(input('请输入矩形的宽（整数值）:'))
    s = a*b
    c = 2*(a+b)
    print('该矩形面积为',s)
    print('该矩形周长为',c)
rectangle()


def add(a,b):
    c = a + b
    return c, a, b, a*b, a-b

d = add(1,2)
print(d)


def fun():
    a =20
    return a

a = 18
print(a)
print(fun())

#利用递归计算100的阶乘 100！
def f(n):
    if n <=1:
        return 1
    else:
        return n*f(n-1)

num  = int(input('请输入一个正整数：'))
s = f(num)
print(num,'的阶乘是：',s)


def sum(n):
    if n ==1:
        return 1
    else:
        return n+sum(n-1)

    print('1~100相加的和为',sum(100))


#计算斐波那契数列
def fibo(n):
    if  n <=2:
        return 1
    else:
        return  fibo(n-1)+ fibo(n-2)


print('斐波那契数列的第{}项为{}'.format(7,fibo(7)))


sum = lambda a,b,c,: a+b+c
print(sum(1,2,3))



fun = lambda m: m**2
print(fun(5))